爬豆瓣电影名的小案例(附视频操作)
人生苦短,我用python!
之前的文章一直都是代码,文字讲解很少。从今天开始,我想每天讲解一个爬虫的小案例,可能是爬豆瓣,可能是爬知乎,也可能去爬淘宝评论,不一而足。只要有趣有用就好。
豆瓣是我很喜欢的平台,一般大家都会去豆瓣看影评,书评,根据评论决定自己是否观看电影或者入手书籍。所以有很多经济管理类的学生有这方面的数据采集需求,当然,我也是其中的一员,对这方面的兴趣促使我学的python。
2那么写爬虫前,一定要学会分析网页结构,定位到你要抓的数据所在的节点标签。定位方法有以下几种:
1. 如果这个标签是整个html网页唯一的一个标签,那么直接找这个标签就可以。
2. 如果这个标签不是唯一的,那么你可以往该节点的父节点入手,如果父节点是唯一的,那么先定位父节点,然后再选出父节点的子节点。此时子节点就是目标节点。
方法大体就是这样,现在我们开始
我们今天只抓豆瓣电影的电影名。
首先我们分析html中目标内容所在的节点,打开开发者工具
a标签一般情况都不唯一的,那么我们先找a的父亲<div class="pl2">算账,再找他孩子a标签。找到div后,取他内部的标签时候用到Beautifulsoup对象的contents方法,返回div内部数据的列表。然后对内部数据取文本内容,用到get_text()
3好了,我附上代码
import requests
from bs4 import BeautifulSoup
url ='https://movie.douban.com/chart'
response = requests.get(url).text
bsObj = BeautifulSoup(response,'html.parser') #lxml
bsObj = bsObj.find_all('div',{'class':'pl2'})
for tag in bsObj:
div_tag = tag.contents[1].get_text()
name = div_tag.strip('\n').replace(' ','') +'\n'
print(name)